package cloud.maque.admin.impl;

import cloud.maque.admin.domain.entity.MqUserLoginHistory;
import cloud.maque.admin.mapper.MqUserLoginHistoryMapper;
import cloud.maque.admin.service.MqUserLoginHistoryService;
import cloud.maque.framework.common.request.PaginateDataResquest;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author 4color
 * @description 登陆历史
 * @date 2023-03-17
 */
@Service
public class MqUserLoginHistoryServiceImpl extends ServiceImpl<MqUserLoginHistoryMapper, MqUserLoginHistory> implements MqUserLoginHistoryService {

    @Override
    public PageInfo<MqUserLoginHistory> page(PaginateDataResquest<MqUserLoginHistory> pageReq) {
        PageHelper.startPage(pageReq.getPageIndex(), pageReq.getPageSize());
        QueryWrapper<MqUserLoginHistory> wrapper = new QueryWrapper<>();

        if (!StrUtil.isEmptyIfStr(pageReq.getData().getLoginIp())) {
            wrapper.lambda().like(MqUserLoginHistory::getLoginIp, pageReq.getData().getLoginIp());
        }

        if (!StrUtil.isEmptyIfStr(pageReq.getData().getUserId())) {
            wrapper.lambda().eq(MqUserLoginHistory::getUserId, pageReq.getData().getUserId());
        }

        wrapper.lambda().orderByAsc(MqUserLoginHistory::getCreateAt);
        wrapper.lambda().orderByAsc(MqUserLoginHistory::getLoginHistoryId);
        List<MqUserLoginHistory> lists = this.baseMapper.selectList(wrapper);
        PageInfo<MqUserLoginHistory> pageInfo = new PageInfo<>(lists);

        return pageInfo;
    }
}
